package org.jypj.dev.dao;

import org.jypj.dev.model.UserTrainScore;
import org.jypj.dev.util.Page;

import java.util.List;
import java.util.Map;

public interface IUserTrainScoreDao {
    
 	/**
	 * 保存    
	 * 字段为空的不存防止覆盖存在默认值的字段
	 * @param userTrainScore
	 * @return 保存后的对象包括ID
	 */	
	public int saveUserTrainScoreByField(UserTrainScore userTrainScore);
	
	/**
	 * 保存    
	 * 所有字段全都保存
	 * @param userTrainScore 
	 * @return 保存后的对象包括ID
	 */	
	public int saveUserTrainScore(UserTrainScore userTrainScore);
	
	/**
	 * 保存    
	 * 所有字段全都保存
	 * @param userTrainScore 
	 * @return 保存后的对象包括ID
	 */	
	public int saveUserTrainScores(List<UserTrainScore> userTrainScores);
    
    /**
	 * 根据ID删除
	 * @param id 主键ID
	 * @return 删除记录数
	 */	
    public int deleteUserTrainScoreById(String id);
    
   	/**
	 * 根据对象删除
	 * @param userTrainScore
	 * @return 
	 */	
    public int deleteUserTrainScoreByObject(UserTrainScore userTrainScore);
    /**
	 * 更新  
	 * 只更新值不为空的字段
	 * @param userTrainScore 
	 * @return 保存后的对象包括ID
	 */	
    public int updateUserTrainScoreByField(UserTrainScore userTrainScore);
    
    /**
	 * 更新  
	 * 更新所有字段
	 * @param userTrainScore 
	 * @return 保存后的对象包括ID
	 */	
    public int updateUserTrainScore(UserTrainScore userTrainScore);
    
   /**
	 * 按ID查询
	 * @parm id 主键ID
	 * @return UserTrainScore 
	 */	
    public UserTrainScore selectUserTrainScoreById(String id);
    
    /**
	 * 分页查询 包含条件
	 * @param page 分页对象
	 * @param map  查询条件  
	 * @return  List<UserTrainScore>
	 */	
     public List<UserTrainScore> selectOnePageByMap(Page page,Map<String,Object> map);
    /**
	 * 分页查询 包含对象条件
	 * @param page 分页对象
	 * @param userTrainScore 查询对象
	 * @return List<UserTrainScore>
	 */	
     public List<UserTrainScore> selectOnePageByUserTrainScore(Page page,UserTrainScore userTrainScore);
    
   /**
	 * 按条件查询全部的
	 * @param map  查询条件  
	 * @return  List<UserTrainScore>
	 */	
     public List<UserTrainScore> selectAllByMap(Map<String,Object> map);
     
      
   /**
	 * 按条件查询全部的
	 * @param map  查询条件  
	 * @return  List<UserTrainScore>
	 */	
     public List<UserTrainScore> selectAllByUserTrainScore(UserTrainScore userTrainScore);
    
	/**
	 * 按条件查询单个对象
	 * @param map  查询条件  
	 * @return  UserTrainScore
	 */	
     public UserTrainScore selectObjectByMap(Map<String,Object> map);
     
     /**
	 * 按条件查询单个对象
	 * @param map  查询条件  
	 * @return  UserTrainScore
	 */	
     public UserTrainScore selectObjectByUserTrainScore(UserTrainScore userTrainScore);
}
